/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ucab.desarrollo.viajesbook.persistencia;

import java.util.List;
import org.hibernate.Session;
import ucab.desarrollo.viajesbook.beans.Lugar;

/**
 *
 * @author Juan C
 */
public class LugarDAO extends  AbstractHibernateDAO<Lugar, Integer> implements ILugarDAO
{

        /**
     * devuelve el tipo de objeto de dominio
     *
     * 
     * @return Lugar.class
     */
    @Override
    protected Class<Lugar> getDomainClass() {
        return Lugar.class;
    }

    /**
    * metodo que crea un lugar
    * @param lugar
    */
    @Override
    public void salvar(Lugar lugar) {
    //    getHibernateTemplate().save(object);
        super.salvar(lugar);
        
    }

    /**
     * metodo que devuelve los paises
     *
     */
    public List<Lugar> devolverPaises() {
        Session sesion = getSession();
        String consulta = "from Lugar as u where u.lugarTipo='Pais'";
        return (List<Lugar>)sesion.createQuery(consulta).list();

    }

    public List<Lugar> devolverLugares() {
        Session sesion = getSession();
        String consulta = "from Lugar";
        return (List<Lugar>)sesion.createQuery(consulta).list();

    }

    /**
     * Metodo que devuelve las ciudades
     *
     */
    public List<Lugar> devolverCiudades() {
        Session sesion = getSession();
        String consulta = "from Lugar as u where u.lugarTipo='Ciudad'";
        return (List<Lugar>)sesion.createQuery(consulta).list();
    }

    /**
     * metodo que devuelve pais por id
     * @param id
     * @return lugar
     */
    public Lugar devolverPaisPorId(int valor) {
        Session sesion = getSession();
        String consulta = "from Lugar as u where u.idlugar='"+valor+"'";
        return (Lugar)sesion.createQuery(consulta).uniqueResult();
    }

   /**
     * metodo que devuelve pais por id
     * @param nombre
     * @return lugar
     */
    public Lugar devolverPaisPorNombre(String valor) {
        Session sesion = getSession();
        String consulta = "from Lugar as u where u.lugarNombre='"+valor+"'";
        return (Lugar)sesion.createQuery(consulta).uniqueResult();
    }
}
